package net.linku.converter;

import net.linku.domain.LAMenu;
import net.linku.model.resp.login.LAMenuVO;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * MenuMapper 接口，用于将 LAMenu 实体列表转换为 LAMenuVO 视图对象列表。
 * <p>
 * 这个接口使用 MapStruct 注解处理器自动生成实现代码。
 * </p>
 * <p>
 * 通过使用 @Mapper 注解，MapStruct 会在编译时生成该接口的实现类。
 * 该实现类可以通过 MenuMapper.INSTANCE 进行访问。
 * </p>
 * 作者：SilenceTian
 * 日期：2024/7/13
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface MenuMapperConverter {

    /**
     * 获取 MenuMapper 实例，用于调用转换方法。
     */
    MenuMapperConverter INSTANCE = Mappers.getMapper(MenuMapperConverter.class);

    /**
     * 将 LAMenu 实体列表转换为 LAMenuVO 视图对象列表。
     *
     * @param menus LAMenu 实体列表
     * @return LAMenuVO 视图对象列表
     */
    List<LAMenuVO> covertToMenusVO(List<LAMenu> menus);

}
